Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Dynamic Language Runtime</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Dynamic_Language_Runtime"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Dynamic_Language_Runtime rootpage-Dynamic_Language_Runtime skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Dynamic Language Runtime</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">

<p>Le <b>Dynamic Language Runtime (DLR)</b> est une <a href="Machine_virtuelle" title="Machine virtuelle">surcouche</a> facilitant l'implémentation et l'interopérabilité des langages dynamiques. Le DLR permet de prendre en charge plusieurs langages. Cette technologie est utilisée par <a href="Microsoft" title="Microsoft">Microsoft</a> pour la plateforme <a href="Microsoft_.NET" title="Microsoft .NET">.NET</a> et <a href="Oracle_(entreprise)" title="Oracle (entreprise)">Oracle</a> pour le <a href="Java_(langage)" title="Java (langage)">langage Java</a>.
</p><p>Le <a href="Common_Language_Runtime" title="Common Language Runtime">CLR</a> de Microsoft est l'équivalent de la machine virtuelle Java (<a href="Machine_virtuelle_Java" title="Machine virtuelle Java">JVM</a>). Le CLR ne gère que les langages propres à Microsoft tandis que le DLR de Microsoft a été créé pour prendre en charge d'autres langages. Oracle suit la même politique d'ouverture en ajoutant à sa JVM un DLR nommé Da Vinci Machine&nbsp;<a href="https://en.wikipedia.org/wiki/Da_Vinci_Machine" class="extiw external" title="en:Da Vinci Machine"><span class="indicateur-langue" title="Article en anglais&nbsp;: «&nbsp;Da Vinci Machine&nbsp;»">(en)</span></a> permettant la gestion d'autres langages que Java. Le terme JVM devient donc inapproprié. Des langages tiers avaient déjà été portés sur la JVM en reprenant la syntaxe de langages existants. La raison principale des DLR est de faciliter le portage de langages tiers&nbsp;; il est en effet très difficile de faire fonctionner un code dynamique (<a href="Python_(langage)" title="Python (langage)">Python</a>, <a href="Ruby" title="Ruby">Ruby</a>) sur un environnement qui est <a href="Typage_statique" title="Typage statique">typé lors de la compilation</a>. Le portage d'un langage sur le DLR est donc plus facile que sur le CLR.
</p>

<div class="mw-heading mw-heading2"><h2 id="DLR_de_Microsoft">DLR de Microsoft</h2></div>
<p>Le DLR est une <a href="Machine_virtuelle" title="Machine virtuelle">surcouche</a> qui implémente les concepts du <a href="Common_Language_Runtime" title="Common Language Runtime">CLR</a> et utilise le <a href="Framework_.NET" class="mw-redirect" title="Framework .NET">framework .NET</a>. Le DLR permet le support de langages non Microsoft comme Python et Ruby alors que le CLR (sur lequel est implémenté le DLR) utilise <a href="C_sharp" class="mw-redirect" title="C sharp">C#</a> et <a href="VB.NET" class="mw-redirect" title="VB.NET">VB.NET</a>. Les versions de <a href="Python_(langage)" title="Python (langage)">Python</a> et <a href="Ruby" title="Ruby">Ruby</a> fonctionnant sur le DLR sont appelées <a href="IronPython" title="IronPython">IronPython</a> et IronRuby. IronPython et IronRuby sont sous <a href="Licence_Apache" title="Licence Apache">licence Apache</a> 2.0. D'autres implémentations sont supportées comme <a href="JScript_.NET" title="JScript .NET">JScript .NET</a> et <a href="VBScript" title="VBScript">VBScript .NET</a>.
</p><p>L'intérêt du DLR se trouve dans l'utilisation de langages dynamiques comme <a href="PHP" title="PHP">PHP</a> et dans le fait que certains langages ont une syntaxe beaucoup plus simple et structurée comme <a href="Python_(langage)" title="Python (langage)">Python</a>.
</p><p>Les premières applications fonctionnant avec les langages du DLR sont&nbsp;:
</p>
<ul><li><a href="Microsoft_Silverlight" class="mw-redirect" title="Microsoft Silverlight">Microsoft Silverlight</a> 2.0, provenant de <a href="Windows_Presentation_Foundation" title="Windows Presentation Foundation">WPF</a>, ne fonctionne que dans un navigateur (Mac/Intel et Windows) et supporte la DLR, <a href="IronPython" title="IronPython">IronPython</a> et managed JScript</li>
<li><a href="Unity_(moteur_de_jeu)" title="Unity (moteur de jeu)">Unity 3D</a> fonctionne sur <a href="Mono_(logiciel)" title="Mono (logiciel)">Mono</a> est la machine virtuelle implémentant la CLR sous <a href="Linux" title="Linux">Linux</a> et pas seulement le navigateur</li>
<li><a href="Liste_des_logiciels_SIG" title="Liste des logiciels SIG">Manifold System</a> supporte tous les langages compatibles .NET (IronPython, VBScript .NET, etc.) à l’exception d’IronRuby.</li></ul>
<p>L'infrastructure du DLR offert par Microsoft a mis fin au portage natif de Ruby .Net<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>.
</p><p>Quelques langages ont été portés sur le DLR de Microsoft&nbsp;:
</p>
<ul><li><a href="IronRuby" title="IronRuby">IronRuby</a> est une implémentation en C# du langage (<a href="Ruby" title="Ruby">Ruby</a>)</li>
<li><a href="IronPython" title="IronPython">IronPython</a> est une implémentation en C# du langage (<a href="Python_(langage)" title="Python (langage)">Python</a>)</li></ul>
<p>Le <a href="Managed_code" title="Managed code">code managé</a> JScript et C# ne sont pas supportés actuellement par le DLR.
</p>
<div class="mw-heading mw-heading2"><h2 id="DLR_d'Oracle"><span id="DLR_d.27Oracle"></span>DLR d'Oracle</h2></div>
<p>Quelques langages ont été portés sur la JVM d'Oracle
</p>
<ul><li><a href="JRuby" title="JRuby">JRuby</a> est une implémentation en java du langage <a href="Ruby" title="Ruby">Ruby</a></li>
<li><a href="Jython" title="Jython">Jython</a> est une implémentation du langage <a href="Python_(langage)" title="Python (langage)">Python</a></li></ul>
<p>Les langages supportés par le DLR d'Oracle sont
</p>
<ul><li><a href="Groovy_(langage)" title="Groovy (langage)">Groovy</a> est l'implémentation d'un langage de script reprenant la syntaxe Java et les idées de Python et Ruby</li>
<li><a href="JavaFX" title="JavaFX">JavaFX</a> est la mise en œuvre d'un langage de script permettant de concurrencer <a href="Silverlight" title="Silverlight">Silverlight</a> et <a href="Adobe_Flex" class="mw-redirect" title="Adobe Flex">Adobe Flex</a></li></ul>
<p>Da Vinci est la réponse d'Oracle à Microsoft&nbsp;: elle permet à la machine virtuelle java de prendre en charge les langages dynamiques.
</p>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external autonumber" href="http://antoniocangiano.com/2008/02/04/rubynet-is-dead/">[1]</a></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<ul><li>Da Vinci Machine&nbsp;<a href="https://en.wikipedia.org/wiki/Da_Vinci_Machine" class="extiw external" title="en:Da Vinci Machine"><span class="indicateur-langue" title="Article en anglais&nbsp;: «&nbsp;Da Vinci Machine&nbsp;»">(en)</span></a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Liens_externes">Liens externes</h2></div>
<ul><li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://dlr.codeplex.com/">Microsoft Dynamic Language Runtime</a></li>
<li><abbr class="abbr indicateur-langue" title="Langue : français">(fr)</abbr> <a rel="nofollow" class="external text" href="https://msdn.microsoft.com/fr-fr/library/Dd233052%28v=VS.110%29.aspx">Vue d'ensemble du Dynamic Language Runtime</a></li></ul>
<div class="navbox-container" style="clear:both;">

</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de Microsoft</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2023-09-15" href="https://fr.wikipedia.org/wiki/?title=Dynamic_Language_Runtime&amp;oldid=207858667">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>